﻿using System;

namespace BITS.PreCompiler.CSharp.Syntax
{
    /// <summary>
    /// Enum for all modifers
    /// </summary>
    [Flags]
    public enum Modifier
    {
        /// <summary>
        /// 
        /// </summary>
        Private = 1,

        /// <summary>
        /// 
        /// </summary>
        Protected = 2,

        /// <summary>
        /// 
        /// </summary>
        Internal = 4,

        /// <summary>
        /// 
        /// </summary>
        Public = 8,

        /// <summary>
        /// 
        /// </summary>
        Partial = 16,

        /// <summary>
        /// 
        /// </summary>
        Sealed = 32,

        /// <summary>
        /// 
        /// </summary>
        Virtual = 64,

        /// <summary>
        /// 
        /// </summary>
        Abstract = 128,

        /// <summary>
        /// 
        /// </summary>
        Static = 256,

        /// <summary>
        /// 
        /// </summary>
        ReadOnly = 512,

        /// <summary>
        /// 
        /// </summary>
        Const = 1024,

        /// <summary>
        /// 
        /// </summary>
        Fixed = 2048,

        /// <summary>
        /// 
        /// </summary>
        ProtectedVirtual = Protected | Virtual,

        /// <summary>
        /// 
        /// </summary>
        PublicStatic = Public | Static,

        /// <summary>
        /// 
        /// </summary>
        PublicAbstract = Public | Abstract,

        /// <summary>
        /// 
        /// </summary>
        PublicPartial = Public | Partial,

        /// <summary>
        /// 
        /// </summary>
        PublicConst = Public | Const,

        /// <summary>
        /// 
        /// </summary>
        PublicReadOnly = Public | ReadOnly,

        /// <summary>
        /// 
        /// </summary>
        PublicReadOnlyStatic = Public | ReadOnly | Static,
    }
}
